Linux expect

expect: Linux에서 커맨드를 자동화할 수 있도록 하는 모듈
#!/bin/bash
passwd="PASSWORD"
expect -c "
set timeout 5
spawn env LANG=C /usr/bin/ssh csian@<IP>
expect \"password:\"
send \"${passwd}\n\"
expect \"$\"
exit 0
"
set timeout: 디폴트 타임 아웃 시간을 지정(지정하지 않을 경우 default 10sec)
expect: 머신으로부터 응답을 읽어 들여, 패턴 매치할 때 사용
    switch, case 문과 동일하게 처리
spawn: expect 내에서 프로세스를 생성하는 커맨드
send: 머신에 문자열을 응답하는 커맨드
exit: expect 처리를 종료시킴(반환값으로 지정한 숫자를 사용)
ex) ssh
#!/usr/bin/expect
set PW "password"
set timeout 5
spawn env LANG=C /usr/bin/ssh csian@<IP ADDR>
expect {
"(yes/no)?" {
send "yes\n"
exp_continue
}
"password:" {
send "${PW}\n"
}
}
expect {
"\\\$" {
exit 0
}
}